package no.sachmuld.methodcombination.examples.annotation.combo.courier;

import no.sachmuld.methodcombination.api.Condition;
import no.sachmuld.methodcombination.api.Context;
import no.sachmuld.methodcombination.api.CrosscuttingBehaviour;
import no.sachmuld.methodcombination.api.MethodInvocation;

/**
 *
 */
public abstract class CourierBehaviour extends CrosscuttingBehaviour {

    public Condition beforeDeliver(Package pkg, Context context) {
        return new Condition(true);
    }

    public Delivery deliver(Package pkg, MethodInvocation<Delivery> methodInvocation) {
        return methodInvocation.proceed();
    }

    public Condition afterDeliver(Package pkg, Delivery delivery, Context context) {
        return new Condition(true);
    }

    public Delivery aroundDeliver(Package pkg, MethodInvocation<Delivery> methodInvocation) {
        return methodInvocation.proceed();
    }

}
